<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/hw_irq.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/arch/x86/include/asm/hw_irq.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X0FTTV9YODZfSFdfSVJRX0hfMA__"><span class="b">_ASM_X86_HW_IRQ_H</span></a>
<a name="2" /><span class="True">       2:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0FTTV9YODZfSFdfSVJRX0hfMA__"><span class="b">_ASM_X86_HW_IRQ_H</span></a>
<a name="3" /><span class="True">       3:</span> 
<a name="4" /><span class="True">       4:</span> <span class="k">/*</span>
<a name="5" /><span class="True">       5:</span> <span class="k"> * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar</span>
<a name="6" /><span class="True">       6:</span> <span class="k"> *</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> * moved some of the old arch/i386/kernel/irq.h to here. VY</span>
<a name="8" /><span class="True">       8:</span> <span class="k"> *</span>
<a name="9" /><span class="True">       9:</span> <span class="k"> * IRQ/IPI changes taken from work by Thomas Radke</span>
<a name="10" /><span class="True">      10:</span> <span class="k"> * &lt;tomsoft@informatik.tu-chemnitz.de&gt;</span>
<a name="11" /><span class="True">      11:</span> <span class="k"> *</span>
<a name="12" /><span class="True">      12:</span> <span class="k"> * hacked by Andi Kleen for x86-64.</span>
<a name="13" /><span class="True">      13:</span> <span class="k"> * unified by tglx</span>
<a name="14" /><span class="True">      14:</span> <span class="k"> */</span>
<a name="15" /><span class="True">      15:</span> 
<a name="16" /><span class="True">      16:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">irq_vectors</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="17" /><span class="True">      17:</span> 
<a name="18" /><span class="True">      18:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">__ASSEMBLY__</span>
<a name="19" /><span class="True">      19:</span> 
<a name="20" /><span class="True">      20:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">percpu</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="21" /><span class="True">      21:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">profile</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="22" /><span class="True">      22:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">smp</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="23" /><span class="True">      23:</span> 
<a name="24" /><span class="True">      24:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">atomic</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="25" /><span class="True">      25:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">irq</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="26" /><span class="True">      26:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">sections</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="27" /><span class="True">      27:</span> 
<a name="28" /><span class="True">      28:</span> <span class="k">/* Interrupt handlers registered during init_IRQ */</span>
<a name="29" /><span class="True">      29:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">apic_timer_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="30" /><span class="True">      30:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">x86_platform_ipi</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="31" /><span class="True">      31:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">kvm_posted_intr_ipi</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="32" /><span class="True">      32:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">error_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="33" /><span class="True">      33:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">irq_work_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="34" /><span class="True">      34:</span> 
<a name="35" /><span class="True">      35:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">spurious_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="36" /><span class="True">      36:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">thermal_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="37" /><span class="True">      37:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">reschedule_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="38" /><span class="True">      38:</span> 
<a name="39" /><span class="True">      39:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="40" /><span class="True">      40:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt0</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="41" /><span class="True">      41:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt1</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="42" /><span class="True">      42:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt2</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="43" /><span class="True">      43:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt3</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="44" /><span class="True">      44:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt4</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="45" /><span class="True">      45:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt5</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="46" /><span class="True">      46:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt6</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="47" /><span class="True">      47:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt7</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="48" /><span class="True">      48:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt8</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="49" /><span class="True">      49:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt9</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="50" /><span class="True">      50:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt10</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="51" /><span class="True">      51:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt11</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="52" /><span class="True">      52:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt12</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="53" /><span class="True">      53:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt13</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="54" /><span class="True">      54:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt14</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="55" /><span class="True">      55:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt15</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="56" /><span class="True">      56:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt16</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="57" /><span class="True">      57:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt17</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="58" /><span class="True">      58:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt18</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="59" /><span class="True">      59:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt19</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="60" /><span class="True">      60:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt20</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="61" /><span class="True">      61:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt21</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="62" /><span class="True">      62:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt22</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="63" /><span class="True">      63:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt23</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="64" /><span class="True">      64:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt24</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="65" /><span class="True">      65:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt25</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="66" /><span class="True">      66:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt26</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="67" /><span class="True">      67:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt27</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="68" /><span class="True">      68:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt28</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="69" /><span class="True">      69:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt29</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="70" /><span class="True">      70:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt30</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="71" /><span class="True">      71:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">invalidate_interrupt31</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="72" /><span class="True">      72:</span> 
<a name="73" /><span class="True">      73:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">irq_move_cleanup_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="74" /><span class="True">      74:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">reboot_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="75" /><span class="True">      75:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">threshold_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="76" /><span class="True">      76:</span> 
<a name="77" /><span class="True">      77:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">call_function_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="78" /><span class="True">      78:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">call_function_single_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="79" /><span class="True">      79:</span> 
<a name="80" /><span class="True">      80:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1RSQUNJTkdfMA__"><span class="b">CONFIG_TRACING</span></a>
<a name="81" /><span class="True">      81:</span> <span class="k">/* Interrupt handlers registered during init_IRQ */</span>
<a name="82" /><span class="True">      82:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">trace_apic_timer_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="83" /><span class="True">      83:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">trace_x86_platform_ipi</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="84" /><span class="True">      84:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">trace_error_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="85" /><span class="True">      85:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">trace_irq_work_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="86" /><span class="True">      86:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">trace_spurious_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="87" /><span class="True">      87:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">trace_thermal_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="88" /><span class="True">      88:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">trace_reschedule_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="89" /><span class="True">      89:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">trace_threshold_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="90" /><span class="True">      90:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">trace_call_function_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="91" /><span class="True">      91:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">trace_call_function_single_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="92" /><span class="True">      92:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_dHJhY2VfaXJxX21vdmVfY2xlYW51cF9pbnRlcnJ1cHRfMA__"><span class="b">trace_irq_move_cleanup_interrupt</span></a>  <span class="b">irq_move_cleanup_interrupt</span>
<a name="93" /><span class="True">      93:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_dHJhY2VfcmVib290X2ludGVycnVwdF8w"><span class="b">trace_reboot_interrupt</span></a>  <span class="b">reboot_interrupt</span>
<a name="94" /><span class="True">      94:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_dHJhY2Vfa3ZtX3Bvc3RlZF9pbnRyX2lwaV8w"><span class="b">trace_kvm_posted_intr_ipi</span></a> <span class="b">kvm_posted_intr_ipi</span>
<a name="95" /><span class="True">      95:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* CONFIG_TRACING */</span>
<a name="96" /><span class="True">      96:</span> 
<a name="97" /><span class="True">      97:</span> <span class="k">/* IOAPIC */</span>
<a name="98" /><span class="True">      98:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_SU9fQVBJQ19JUlFfMA__"><span class="b">IO_APIC_IRQ</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">(</span><span class="f">(</span><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">&gt;=</span> <a href="cpu.c_macros_ref.html#_TlJfSVJRU19MRUdBQ1lfMA__"><span class="b">NR_IRQS_LEGACY</span></a><span class="f">)</span> <span class="f">||</span> <span class="f">(</span><span class="f">(</span><span class="c">1</span><span class="f">&lt;&lt;</span><span class="f">(</span><span class="b">x</span><span class="f">)</span><span class="f">)</span> <span class="f">&amp;</span> <span class="b">io_apic_irqs</span><span class="f">)</span><span class="f">)</span>
<a name="99" /><span class="True">      99:</span> <span class="m">extern</span> <span class="m">unsigned</span> <span class="m">long</span> <span class="b">io_apic_irqs</span><span class="f">;</span>
<a name="100" /><span class="True">     100:</span> 
<a name="101" /><span class="True">     101:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">init_VISWS_APIC_irqs</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="102" /><span class="True">     102:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">setup_IO_APIC</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="103" /><span class="True">     103:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">disable_IO_APIC</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="104" /><span class="True">     104:</span> 
<a name="105" /><span class="True">     105:</span> <span class="m">struct</span> <span class="b">io_apic_irq_attr</span> <span class="f">{</span>
<a name="106" /><span class="True">     106:</span>     <span class="m">int</span> <span class="b">ioapic</span><span class="f">;</span>
<a name="107" /><span class="True">     107:</span>     <span class="m">int</span> <span class="b">ioapic_pin</span><span class="f">;</span>
<a name="108" /><span class="True">     108:</span>     <span class="m">int</span> <span class="b">trigger</span><span class="f">;</span>
<a name="109" /><span class="True">     109:</span>     <span class="m">int</span> <span class="b">polarity</span><span class="f">;</span>
<a name="110" /><span class="True">     110:</span> <span class="f">}</span><span class="f">;</span>
<a name="111" /><span class="True">     111:</span> 
<a name="112" /><span class="True">     112:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">set_io_apic_irq_attr</span><span class="f">(</span><span class="m">struct</span> <span class="b">io_apic_irq_attr</span> <span class="f">*</span><span class="b">irq_attr</span><span class="f">,</span>
<a name="113" /><span class="True">     113:</span>                     <span class="m">int</span> <span class="b">ioapic</span><span class="f">,</span> <span class="m">int</span> <span class="b">ioapic_pin</span><span class="f">,</span>
<a name="114" /><span class="True">     114:</span>                     <span class="m">int</span> <span class="b">trigger</span><span class="f">,</span> <span class="m">int</span> <span class="b">polarity</span><span class="f">)</span>
<a name="115" /><span class="True">     115:</span> <span class="f">{</span>
<a name="116" /><span class="True">     116:</span>     <span class="b">irq_attr</span><span class="f">-&gt;</span><span class="b">ioapic</span>    <span class="f">=</span> <span class="b">ioapic</span><span class="f">;</span>
<a name="117" /><span class="True">     117:</span>     <span class="b">irq_attr</span><span class="f">-&gt;</span><span class="b">ioapic_pin</span>    <span class="f">=</span> <span class="b">ioapic_pin</span><span class="f">;</span>
<a name="118" /><span class="True">     118:</span>     <span class="b">irq_attr</span><span class="f">-&gt;</span><span class="b">trigger</span>    <span class="f">=</span> <span class="b">trigger</span><span class="f">;</span>
<a name="119" /><span class="True">     119:</span>     <span class="b">irq_attr</span><span class="f">-&gt;</span><span class="b">polarity</span>    <span class="f">=</span> <span class="b">polarity</span><span class="f">;</span>
<a name="120" /><span class="True">     120:</span> <span class="f">}</span>
<a name="121" /><span class="True">     121:</span> 
<a name="122" /><span class="True">     122:</span> <span class="k">/* Intel specific interrupt remapping information */</span>
<a name="123" /><span class="True">     123:</span> <span class="m">struct</span> <span class="b">irq_2_iommu</span> <span class="f">{</span>
<a name="124" /><span class="True">     124:</span>     <span class="m">struct</span> <span class="b">intel_iommu</span> <span class="f">*</span><span class="b">iommu</span><span class="f">;</span>
<a name="125" /><span class="True">     125:</span>     <span class="b">u16</span> <span class="b">irte_index</span><span class="f">;</span>
<a name="126" /><span class="True">     126:</span>     <span class="b">u16</span> <span class="b">sub_handle</span><span class="f">;</span>
<a name="127" /><span class="True">     127:</span>     <span class="b">u8</span>  <span class="b">irte_mask</span><span class="f">;</span>
<a name="128" /><span class="True">     128:</span> <span class="f">}</span><span class="f">;</span>
<a name="129" /><span class="True">     129:</span> 
<a name="130" /><span class="True">     130:</span> <span class="k">/* AMD specific interrupt remapping information */</span>
<a name="131" /><span class="True">     131:</span> <span class="m">struct</span> <span class="b">irq_2_irte</span> <span class="f">{</span>
<a name="132" /><span class="True">     132:</span>     <span class="b">u16</span> <span class="b">devid</span><span class="f">;</span> <span class="k">/* Device ID for IRTE table */</span>
<a name="133" /><span class="True">     133:</span>     <span class="b">u16</span> <span class="b">index</span><span class="f">;</span> <span class="k">/* Index into IRTE table*/</span>
<a name="134" /><span class="True">     134:</span> <span class="f">}</span><span class="f">;</span>
<a name="135" /><span class="True">     135:</span> 
<a name="136" /><span class="True">     136:</span> <span class="k">/*</span>
<a name="137" /><span class="True">     137:</span> <span class="k"> * This is performance-critical, we want to do it O(1)</span>
<a name="138" /><span class="True">     138:</span> <span class="k"> *</span>
<a name="139" /><span class="True">     139:</span> <span class="k"> * Most irqs are mapped 1:1 with pins.</span>
<a name="140" /><span class="True">     140:</span> <span class="k"> */</span>
<a name="141" /><span class="True">     141:</span> <span class="m">struct</span> <span class="b">irq_cfg</span> <span class="f">{</span>
<a name="142" /><span class="True">     142:</span>     <span class="m">struct</span> <span class="b">irq_pin_list</span>    <span class="f">*</span><span class="b">irq_2_pin</span><span class="f">;</span>
<a name="143" /><span class="True">     143:</span>     <span class="b">cpumask_var_t</span>        <span class="b">domain</span><span class="f">;</span>
<a name="144" /><span class="True">     144:</span>     <span class="b">cpumask_var_t</span>        <span class="b">old_domain</span><span class="f">;</span>
<a name="145" /><span class="True">     145:</span>     <span class="b">u8</span>            <span class="b">vector</span><span class="f">;</span>
<a name="146" /><span class="True">     146:</span>     <span class="b">u8</span>            <span class="b">move_in_progress</span> <span class="f">:</span> <span class="c">1</span><span class="f">;</span>
<a name="147" /><span class="True">     147:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX0lSUV9SRU1BUF8w"><span class="b">CONFIG_IRQ_REMAP</span></a>
<a name="148" /><span class="True">     148:</span>     <span class="b">u8</span>            <span class="b">remapped</span> <span class="f">:</span> <span class="c">1</span><span class="f">;</span>
<a name="149" /><span class="True">     149:</span>     <span class="m">union</span> <span class="f">{</span>
<a name="150" /><span class="True">     150:</span>         <span class="m">struct</span> <span class="b">irq_2_iommu</span> <span class="b">irq_2_iommu</span><span class="f">;</span>
<a name="151" /><span class="True">     151:</span>         <span class="m">struct</span> <span class="b">irq_2_irte</span>  <span class="b">irq_2_irte</span><span class="f">;</span>
<a name="152" /><span class="True">     152:</span>     <span class="f">}</span><span class="f">;</span>
<a name="153" /><span class="True">     153:</span> <span class="f">#</span><span class="n">endif</span>
<a name="154" /><span class="True">     154:</span> <span class="f">}</span><span class="f">;</span>
<a name="155" /><span class="True">     155:</span> 
<a name="156" /><span class="True">     156:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">assign_irq_vector</span><span class="f">(</span><span class="m">int</span><span class="f">,</span> <span class="m">struct</span> <span class="b">irq_cfg</span> <span class="f">*</span><span class="f">,</span> <span class="m">const</span> <span class="m">struct</span> <span class="b">cpumask</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="157" /><span class="True">     157:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">send_cleanup_vector</span><span class="f">(</span><span class="m">struct</span> <span class="b">irq_cfg</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="158" /><span class="True">     158:</span> 
<a name="159" /><span class="True">     159:</span> <span class="m">struct</span> <span class="b">irq_data</span><span class="f">;</span>
<a name="160" /><span class="True">     160:</span> <span class="m">int</span> <span class="b">__ioapic_set_affinity</span><span class="f">(</span><span class="m">struct</span> <span class="b">irq_data</span> <span class="f">*</span><span class="f">,</span> <span class="m">const</span> <span class="m">struct</span> <span class="b">cpumask</span> <span class="f">*</span><span class="f">,</span>
<a name="161" /><span class="True">     161:</span>               <span class="m">unsigned</span> <span class="m">int</span> <span class="f">*</span><span class="b">dest_id</span><span class="f">)</span><span class="f">;</span>
<a name="162" /><span class="True">     162:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">IO_APIC_get_PCI_irq_vector</span><span class="f">(</span><span class="m">int</span> <span class="b">bus</span><span class="f">,</span> <span class="m">int</span> <span class="b">devfn</span><span class="f">,</span> <span class="m">int</span> <span class="b">pin</span><span class="f">,</span> <span class="m">struct</span> <span class="b">io_apic_irq_attr</span> <span class="f">*</span><span class="b">irq_attr</span><span class="f">)</span><span class="f">;</span>
<a name="163" /><span class="True">     163:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">setup_ioapic_dest</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="164" /><span class="True">     164:</span> 
<a name="165" /><span class="True">     165:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">enable_IO_APIC</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="166" /><span class="True">     166:</span> 
<a name="167" /><span class="True">     167:</span> <span class="k">/* Statistics */</span>
<a name="168" /><span class="True">     168:</span> <span class="m">extern</span> <span class="b">atomic_t</span> <span class="b">irq_err_count</span><span class="f">;</span>
<a name="169" /><span class="True">     169:</span> <span class="m">extern</span> <span class="b">atomic_t</span> <span class="b">irq_mis_count</span><span class="f">;</span>
<a name="170" /><span class="True">     170:</span> 
<a name="171" /><span class="True">     171:</span> <span class="k">/* EISA */</span>
<a name="172" /><span class="True">     172:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">eisa_set_level_irq</span><span class="f">(</span><span class="m">unsigned</span> <span class="m">int</span> <span class="b">irq</span><span class="f">)</span><span class="f">;</span>
<a name="173" /><span class="True">     173:</span> 
<a name="174" /><span class="True">     174:</span> <span class="k">/* SMP */</span>
<a name="175" /><span class="True">     175:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_X192aXNpYmxlXzA_"><span class="b">__visible</span></a> <span class="m">void</span> <span class="b">smp_apic_timer_interrupt</span><span class="f">(</span><span class="m">struct</span> <span class="b">pt_regs</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="176" /><span class="True">     176:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_X192aXNpYmxlXzA_"><span class="b">__visible</span></a> <span class="m">void</span> <span class="b">smp_spurious_interrupt</span><span class="f">(</span><span class="m">struct</span> <span class="b">pt_regs</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="177" /><span class="True">     177:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_X192aXNpYmxlXzA_"><span class="b">__visible</span></a> <span class="m">void</span> <span class="b">smp_x86_platform_ipi</span><span class="f">(</span><span class="m">struct</span> <span class="b">pt_regs</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="178" /><span class="True">     178:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_X192aXNpYmxlXzA_"><span class="b">__visible</span></a> <span class="m">void</span> <span class="b">smp_error_interrupt</span><span class="f">(</span><span class="m">struct</span> <span class="b">pt_regs</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="179" /><span class="True">     179:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1g4Nl9JT19BUElDXzA_"><span class="b">CONFIG_X86_IO_APIC</span></a>
<a name="180" /><span class="True">     180:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_YXNtbGlua2FnZV8w"><span class="b">asmlinkage</span></a> <span class="m">void</span> <span class="b">smp_irq_move_cleanup_interrupt</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="181" /><span class="True">     181:</span> <span class="f">#</span><span class="n">endif</span>
<a name="182" /><span class="True">     182:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1NNUF8w"><span class="b">CONFIG_SMP</span></a>
<a name="183" /><span class="True">     183:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_X192aXNpYmxlXzA_"><span class="b">__visible</span></a> <span class="m">void</span> <span class="b">smp_reschedule_interrupt</span><span class="f">(</span><span class="m">struct</span> <span class="b">pt_regs</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="184" /><span class="True">     184:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_X192aXNpYmxlXzA_"><span class="b">__visible</span></a> <span class="m">void</span> <span class="b">smp_call_function_interrupt</span><span class="f">(</span><span class="m">struct</span> <span class="b">pt_regs</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="185" /><span class="True">     185:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_X192aXNpYmxlXzA_"><span class="b">__visible</span></a> <span class="m">void</span> <span class="b">smp_call_function_single_interrupt</span><span class="f">(</span><span class="m">struct</span> <span class="b">pt_regs</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="186" /><span class="True">     186:</span> <span class="m">extern</span> <a href="cpu.c_macros_ref.html#_X192aXNpYmxlXzA_"><span class="b">__visible</span></a> <span class="m">void</span> <span class="b">smp_invalidate_interrupt</span><span class="f">(</span><span class="m">struct</span> <span class="b">pt_regs</span> <span class="f">*</span><span class="f">)</span><span class="f">;</span>
<a name="187" /><span class="True">     187:</span> <span class="f">#</span><span class="n">endif</span>
<a name="188" /><span class="True">     188:</span> 
<a name="189" /><span class="True">     189:</span> <span class="m">extern</span> <span class="m">void</span> <span class="f">(</span><span class="f">*</span><a href="cpu.c_macros_ref.html#_X19pbml0Y29uc3RfMA__"><span class="b">__initconst</span></a> <span class="b">interrupt</span><span class="f">[</span><a href="cpu.c_macros_ref.html#_TlJfVkVDVE9SU18w"><span class="b">NR_VECTORS</span></a><span class="f">-</span><a href="cpu.c_macros_ref.html#_RklSU1RfRVhURVJOQUxfVkVDVE9SXzA_"><span class="b">FIRST_EXTERNAL_VECTOR</span></a><span class="f">]</span><span class="f">)</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="190" /><span class="True">     190:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1RSQUNJTkdfMA__"><span class="b">CONFIG_TRACING</span></a>
<a name="191" /><span class="True">     191:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_dHJhY2VfaW50ZXJydXB0XzA_"><span class="b">trace_interrupt</span></a> <span class="b">interrupt</span>
<a name="192" /><span class="True">     192:</span> <span class="f">#</span><span class="n">endif</span>
<a name="193" /><span class="True">     193:</span> 
<a name="194" /><span class="True">     194:</span> <span class="m">typedef</span> <span class="m">int</span> <span class="b">vector_irq_t</span><span class="f">[</span><a href="cpu.c_macros_ref.html#_TlJfVkVDVE9SU18w"><span class="b">NR_VECTORS</span></a><span class="f">]</span><span class="f">;</span>
<a name="195" /><span class="True">     195:</span> <a href="cpu.c_macros_ref.html#_REVDTEFSRV9QRVJfQ1BVXzA_"><span class="b">DECLARE_PER_CPU</span></a><span class="f">(</span><span class="b">vector_irq_t</span><span class="f">,</span> <span class="b">vector_irq</span><span class="f">)</span><span class="f">;</span>
<a name="196" /><span class="True">     196:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">setup_vector_irq</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span><span class="f">;</span>
<a name="197" /><span class="True">     197:</span> 
<a name="198" /><span class="True">     198:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1g4Nl9JT19BUElDXzA_"><span class="b">CONFIG_X86_IO_APIC</span></a>
<a name="199" /><span class="True">     199:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">lock_vector_lock</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="200" /><span class="True">     200:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">unlock_vector_lock</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="201" /><span class="True">     201:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">__setup_vector_irq</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span><span class="f">;</span>
<a name="202" /><span class="False">     202:</span> <span class="f">#</span><span class="n">else</span>
<a name="203" /><span class="False">     203:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">lock_vector_lock</span><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="204" /><span class="False">     204:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">unlock_vector_lock</span><span class="f">(</span><span class="m">void</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="205" /><span class="False">     205:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">__setup_vector_irq</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="206" /><span class="True">     206:</span> <span class="f">#</span><span class="n">endif</span>
<a name="207" /><span class="True">     207:</span> 
<a name="208" /><span class="True">     208:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* !ASSEMBLY_ */</span>
<a name="209" /><span class="True">     209:</span> 
<a name="210" /><span class="True">     210:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _ASM_X86_HW_IRQ_H */</span>
<a name="211" /><span class="True">     211:</span> </pre>
  </body>
</html>
